package main

import (
	"fmt"
)

func main() {
	// var score [5]float64
	// for i := 0; i < len(score); i++ {
	// 	fmt.Println("输入成绩")
	// 	fmt.Scanln(&score[i])
	// }

	// for i := 0; i < len(score); i++ {
	// 	fmt.Println("输出成绩")
	// 	fmt.Println(score[i])
	// }

	//四种初始化数组的方法
	// var numArray01 [3]int = [3]int{1, 2, 3}
	// fmt.Println("01", numArray01)

	// var numArray02 = [3]int{1, 2, 3}
	// fmt.Println("02", numArray02)

	// var numArray03 = [...]int{1, 2, 3}
	// fmt.Println("03", numArray03)

	// var numArray04 = [...]int{1: 333, 0: 123, 2: 1231}
	// fmt.Println("04", numArray04)

	//切片
	// var slice []float64 = make([]float64, 5, 10)
	// slice[1] = 19
	// slice[3] = 32
	// fmt.Println(slice)
	// fmt.Println(len(slice))
	// fmt.Println(cap(slice))

	//方式3
	// var strSlice []string = []string{"zsh", "zsg", "zsf"}
	// strSlice = append(strSlice, "123")
	// //切片的容量如果小于1024，那么直接翻倍，如果大于等于1024，每次扩1/4，直到新容量超过所需容量
	// fmt.Println(strSlice)
	// fmt.Println(len(strSlice))
	// fmt.Println(cap(strSlice))

	var intArray = [4]int{1, 2, 3, 4}
	var intSlice []int = intArray[1:3]
	var intSlice2 []int = intSlice[0:2]
	//修改intArray的值，如果在intSlice范围中，intSlice的值也会改变，因为intSlice指向了这个数组
	fmt.Println("intSlice", intSlice)
	fmt.Println("intSlice-len", len(intSlice))
	fmt.Println("intSlice-cap", cap(intSlice))
	fmt.Println("intSlice2", intSlice2)
	fmt.Println("intSlice2-len", len(intSlice2))
	fmt.Println("intSlice2-cap", cap(intSlice2))
	intArray[1] = 5
	intSlice = append(intSlice, 4)
	fmt.Println(intSlice)
	fmt.Println(intSlice2)
	fmt.Println(intArray)
	intSlice[0] = 3
	fmt.Println(intSlice)
	fmt.Println(intSlice2)
	fmt.Println(intArray)
}
